package com.example.qxfw.nyqx.service;

import com.example.qxfw.nyqx.dto.NyClDto;
import com.example.qxfw.nyqx.vo.CropYieldFcstListVo;
import com.example.qxfw.nyqx.vo.CropYieldHistoryListVo;

import java.sql.Timestamp;
import java.util.List;

public interface YieldForecastService {

    /**
     * 计算晚稻气象产量，趋势产量，随机产量
     */
    NyClDto calculate(long year, String stationId, String type);

    /**
     * 保存产量预报数据
     *
     * @param qxCl
     * @param qsCl
     * @param sjCl
     * @param cropName
     * @param stationId
     * @param year
     * @param type
     * @return
     */
    double ybzz(double qxCl, double qsCl, double sjCl, String cropName, String stationId, long year, String type);

    /**
     * 获取产量预报列表
     *
     * @param cropName
     * @param stationId
     * @param type
     * @param year1
     * @param year2
     * @return
     */
    List<CropYieldFcstListVo> listYieldFcstVo(long year1, long year2, String stationId, String type, String cropName);

    /**
     * 获取产量历史列表
     *
     * @param cropName
     * @param stationId
     * @param type
     * @param year1
     * @param year2
     * @return
     */
    List<CropYieldHistoryListVo> listYieldHistoryVo(long year1, long year2, String stationId, String type, String cropName);

    /************************
     * @Author : HuangDeYin Jolly
     * @Description :
     * @param type :种类
     * @param breed :品种
     * @param YW :气象产量
     * @param YT :趋势产量
     * @param YQ :随机产量
     ************************/
    Object generateDocument(String stationName, Timestamp forecastTime, Timestamp makeTime, String maker, String type, String breed, Integer YW, Integer YT, Integer YQ);

    NyClDto earlycalculate(long year, String stationId, String type, String sunhour);

    List<CropYieldFcstListVo> listYieldFcst(String year, String cropName, String type);
}
